ORDER BY 关键字
发表于 2018-3-5 19:56:55 | 分类于 SQL |
ORDER BY 关键字
ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。
默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,可以使用 DESC 关键字。
语法
SELECT column_name,column_name
FROM table_name
ORDER BY column_name,column_name ASC|DESC;
示例
样本数据库与 SELECT 语句 一章相同。
ORDER BY 示例
从 "Websites" 表中选取所有网站,并按照 "alexa" 列排序:
SELECT * FROM Websites
ORDER BY alexa;
输出结果:
mysql> SELECT * FROM Websites
-> ORDER BY alexa;
+----+--------------+---------------------------+-------+---------+
| id | name | url | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1 | Google | https://www.google.cm/ | 1 | USA |
| 5 | Facebook | https://www.facebook.com/ | 3 | USA |
| 2 | 淘宝 | https://www.taobao.com/ | 13 | CN |
| 4 | 微博 | http://weibo.com/ | 20 | CN |
| 3 | 菜鸟教程 | http://www.runoob.com/ | 4689 | CN |
+----+--------------+---------------------------+-------+---------+
ORDER BY DESC 示例
从 "Websites" 表中选取所有网站,并按照 "alexa" 列降序排序:
SELECT * FROM Websites
ORDER BY alexa DESC;
输出结果:
mysql> SELECT * FROM Websites
-> ORDER BY alexa DESC;
+----+--------------+---------------------------+-------+---------+
| id | name | url | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 3 | 菜鸟教程 | http://www.runoob.com/ | 4689 | CN |
| 4 | 微博 | http://weibo.com/ | 20 | CN |
| 2 | 淘宝 | https://www.taobao.com/ | 13 | CN |
| 5 | Facebook | https://www.facebook.com/ | 3 | USA |
| 1 | Google | https://www.google.cm/ | 1 | USA |
+----+--------------+---------------------------+-------+---------+
ORDER BY 多列示例
从 "Websites" 表中选取所有网站,并按照 "country" 和 "alexa" 列排序:
SELECT * FROM Websites
ORDER BY country,alexa;
执行输出结果:
mysql> SELECT * FROM Websites
-> ORDER BY country,alexa;
+----+--------------+---------------------------+-------+---------+
| id | name | url | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 2 | 淘宝 | https://www.taobao.com/ | 13 | CN |
| 4 | 微博 | http://weibo.com/ | 20 | CN |
| 3 | 菜鸟教程 | http://www.runoob.com/ | 4689 | CN |
| 1 | Google | https://www.google.cm/ | 1 | USA |
| 5 | Facebook | https://www.facebook.com/ | 3 | USA |
+----+--------------+---------------------------+-------+---------+
更多
ORDER BY 多列补充
ORDER BY 多列的时候,先按照第一个 column name 排序,再按照第二个 column name 排序;如上述最后一个例子:
- 先将 country 值这一列排序,同为 CN 的排前面,同属 USA 的排后面;
- 然后在同属 CN 的这些多行数据中,再根据 alexa 值的大小排列。
- ORDER BY 排列时,不写明 ASC DESC 的时候,默认是 ASC。
通过非选择列进行排序
通常,ORDER BY子句中使用的列将是为显示而选择的列。但是,实际上并不一定要这样,用非检索的列排序数据是完全合法的。